print(~5) #5的8位二进制形式为00000101，按位取反为11111010，即-6
print(~-5) #-5的8位二进制形式为11111011，按位取反为00000100，即4

print(4&5) #4的二进制形式为00000100，5为00000101，所以结果为00000100
print(-4&5) #-4的二进制形式为11111100，5为00000101，所以结果为00000100

print(4^5) #4的二进制形式为00000100，5为00000101，所以结果为00000001
print(-4^5) #-4的二进制形式为11111100，5为00000101，所以结果为11111001

print(4|5) #4的二进制形式为00000100，5为00000101，所以结果为00000101
print(-4|5) #-4的二进制形式为11111100，5为00000101，所以结果为11111101

print(1<<2)
print(-1<<2)

print(1>>2)
print(-1<<2)